/**
 * 初始化表格的列
 */

var initColum = [
		{
			title : '<input type="checkbox">',
			checkbox : true,
			formatter : function(value, row, index) {
				return {
					// disabled : true,// 设置是否可用
					checked : false
				// 设置选中
				};
			}
		},
		{
			title : '序号',
			visible : false,
			formatter : function(value, row, index) {
				return index + 1;

			}
		},
		{
			field : 'name',
			title : ' 任务名称',
			align : 'center',
			valign : 'middle',
			formatter : function(value, row, index) {
				return '<div class="tableWrap" title="' + value + '" >' + value
						+ '</div>';
			}
		},
		{
			field : 'group',
			title : ' 组别',
			align : 'center',
			valign : 'middle',
			visible : false
		},
		{
			field : 'resource',
			title : ' 拥有资源',
			align : 'center',
			valign : 'middle'
		},
		{
			field : 'source',
			title : '任务来源',
			align : 'center',
			valign : 'middle',
			formatter : function(value, row, index) {
				if (row.problemsId == undefined || row.problemsId == null
						|| row.problemsId == "") {
					return value;
				}

				return row.problemsId;
			}
		// 
		},
		{
			field : 'type',
			title : ' 任务类型',
			align : 'center',
			valign : 'middle',
			visible : false
		},
		{
			field : 'interfaceName',
			title : ' 接口名',
			align : 'center',
			valign : 'middle',
			visible : false
		},
		{
			field : 'region',
			title : ' 所属地区',
			align : 'center',
			valign : 'middle',
			visible : false
		},
		{
			title : ' 计划时间',
			align : 'center',
			valign : 'middle',
			formatter : function(value, row, index) {
				return row.earlyStart + "-" + row.earlyFinish;
			}
		},
		{
			field : 'earlyStart',
			title : ' 计划开始时间',
			align : 'center',
			valign : 'middle',
			visible : false
		},
		{
			field : 'earlyFinish',
			title : ' 计划完成时间',
			align : 'center',
			valign : 'middle',
			visible : false
		},
		{
			title : ' 实际时间',
			align : 'center',
			valign : 'middle',
			formatter : function(value, row, index) {
				return row.lateStart + "-" + row.lateFinish;
			}
		},
		{
			field : 'lateStart',
			title : ' 实际开始时间',
			align : 'center',
			valign : 'middle',
			visible : false
		},
		{
			field : 'lateFinish',
			title : ' 实际完成时间',
			align : 'center',
			valign : 'middle',
			visible : false
		},
		{
			field : 'earlyVersion',
			title : ' 计划版本号',
			align : 'center',
			visible : false,
			valign : 'middle'
		},
		{
			title : ' 版本号',
			align : 'center',
			valign : 'middle',
			formatter : function(value, row, index) {
				var early_version, late_version;
				if (row.earlyVersion == null || row.earlyVersion == "") {
					early_version = "-";
				} else {
					early_version = row.earlyVersion;
				}
				if (row.lateVersion == null || row.lateVersion == "") {
					late_version = "-";
				} else {
					late_version = row.lateVersion;
				}
				return early_version + "(" + late_version + ")";
			}
		},
		{
			field : 'lateVersion',
			title : ' 实际发布版本号',
			align : 'center',
			visible : false,
			valign : 'middle'
		},
		{
			field : 'versionDate',
			title : ' 版本发布日期',
			align : 'center',
			valign : 'middle',
			visible : false,
			formatter : function(value, row, index) {
				if (value.length >= 10) {
					return value.substring(0, 10);
				} else {
					return "";
				}
			}
		},
		{
			field : 'notes',
			title : ' 备注',
			align : 'center',
			valign : 'middle',
			visible : false
		},
		{
			field : 'problemsId',
			title : ' 问题管理平台ID',
			align : 'center',
			valign : 'middle',
			visible : false
		},
		{
			field : 'ywfwqd',
			title : '业务服务清单',
			align : 'center',
			valign : 'middle',
			formatter : function(value, row, index) {
				if (value == null || value == "null") {
					return "";
				}
				var ids = value.split(",");
				var str = "";
				for (var i = 0; i < ids.length; i++) {
					var id = ids[i];
					if (i != 0) {
						str += " , ";
					}
					str += "<a href ='javascript:openYwfwqd(" + id + ")'>" + id
							+ "</a>";

				}
				return str;
			}
		},
		{
			field : 'qdbh',
			title : '清单编号',
			align : 'center',
			valign : 'middle',
			formatter : function(value, row, index) {
				if (value == null || value == "null") {
					return "";
				}
				var ids = value.split(",");
				var str = "";
				for (var i = 0; i < ids.length; i++) {
					var id = ids[i];
					if (i != 0) {
						str += " , ";
					}
					str += "<a href ='javascript:openJcqd(\"" + id + "\")'>"
							+ id + "</a>";

				}
				return str;
			}
		} ];

function openJcqd(id) {
	layer.open({
		type : 2,
		title : "清单说明",
		skin : 'layui-layer-rim', // 加上边框
		area : [ '893px', '400px' ],
		content : '/jcqd/view?id=' + id
	});
}

function openYwfwqd(id) {
	layer.open({
		type : 2,
		title : "业务服务清单",
		shadeClose : true,
		offset : 15,
		shade : false,
		maxmin : true, // 开启最大化最小化按钮
		area : [ '893px', '600px' ],
		maxmin : true,
		content : '/ywfwqd/view?id=' + id
	});
}

$(function() {

	var validate = $("#form").bootstrapValidator({
		feedbackIcons : {
			valid : 'glyphicon glyphicon-ok',
			invalid : 'glyphicon glyphicon-remove',
			validating : 'glyphicon glyphicon-refresh'
		},
		fields : {
			beginDate : {
				validators : {
					date : {
						format : 'YYYY-MM-DD',
						message : '日期格式不正确'
					},
					callback : {
						message : '计划开始日期不能大于计划结束日期或不能有一个为空',
						callback : function(value, validator, $field, options) {
							var end = $('#endDate').val();
							if (value == null && end == "") {
								return true;
							}
							if (value == null && end != null) {
								return false;
							}
							if (value != null && end == null) {
								return false;
							}
							return value <= end;
						}
					}
				}
			},
			endDate : {
				validators : {
					date : {
						format : 'YYYY-MM-DD',
						message : '日期格式不正确'
					},
					callback : {
						message : '计划开始日期不能大于计划结束日期或不能有一个为空',
						callback : function(value, validator, $field, options) {
							var begin = $('#beginDate').val();
							if (value == null && begin == "") {
								return true;
							}
							if (value == null && begin != null) {
								return false;
							}
							if (value != null && begin == null) {
								return false;
							}
							return begin <= value;
						}
					}
				}
			}
		}
	});

	$(".js-example-basic-single").select2();
	$('.form_date').datetimepicker({
		language : 'zh-CN',
		weekStart : 1,
		todayBtn : 1,
		autoclose : 1,
		todayHighlight : 1,
		startView : 2,
		minView : 2,
		forceParse : 0
	});

	var uid;
	var initFlag = 1;
	var sszbSelect = $("#sszb").select2().on('change', function() {
		var optUser = $("#optUser").select2();
		var sszb = this.value;
		$.post("/user/getUsers", {
			"sszb" : sszb
		}, function(data, status) {
			$("#optUser").empty();
			var option = new Option("--请选择--", "", false, false);
			optUser.append(option);

			for (var i = 0; i < data.list.length; i++) {
				var d = data.list[i];
				if (d.id == uid) {
					if (initFlag == 1) {
						option = new Option(d.fullName, d.id, true, true);
					} else {
						option = new Option(d.fullName, d.id, false, false);
					}
				} else {
					option = new Option(d.fullName, d.id, false, false);
				}

				optUser.append(option);
			}
			if (initFlag == 1) {
				optUser.trigger('change');
				initFlag = 0;
			}
			initTable();
		});
	});

	if (myself != "") {
		uid = myself;
	}

	if (dept != "") {
		$("#sszb").val(dept).trigger("change");

	} else {
		initTable();
	}

});

function initTable() {
	$('#table').bootstrapTable({
		columns : initColum,
		contentType : "application/x-www-form-urlencoded",
		pageSize : 6,
		toolbar : '#toolbar', // 搜索框绑定
		url : "/task/listData",
		uniqueId : 'id', // 绑定ID
		sidePagination : "server",
		singleSelect : false, // 单选checkbox
		striped : true,
		pageNumber : 1,
		clickToSelect : true,
		showColumns : true, // 是否显示所有的列
		showRefresh : true, // 是否显示刷新按钮
		queryParamsType : '',
		queryParams : function(params) {
			params.sszb = $("#sszb").val();
			params.beginDate = $("#beginDate").val();
			params.endDate = $("#endDate").val();
			params.optUser = $("#optUser").val();
			params.zt = $("#zt").val();
			return params;
		},
		pagination : true,
		onDblClickRow : function(row) {
			layer.open({
				type : 1,
				title : "任务信息",
				skin : 'layui-layer-rim', // 加上边框
				area : [ '893px', '400px' ],
				content : row.name
			});
		}
	});
}

function add() {
	layer.open({
		type : 2,
		title : "新增计划",
		shadeClose : true,
		offset : 15,
		shade : false,
		maxmin : true, // 开启最大化最小化按钮
		area : [ '893px', '600px' ],
		maxmin : true,
		content : '/task/add'
	});
}

function edit() {
	var selectContent = $('#table').bootstrapTable('getSelections');
	if (typeof (selectContent) == 'undefined') {
		BootstrapDialog.show({
			title : '提示',
			message : '请选择一列数据!'
		});
		return false;
	} else if (selectContent.length != 1) {
		BootstrapDialog.show({
			title : '提示',
			message : '请只选择一列数据!'
		});
		return false;
	} else {
		layer.open({
			type : 2,
			title : "修改服务清单",
			shadeClose : true,
			offset : 15,
			shade : false,
			maxmin : true, // 开启最大化最小化按钮
			area : [ '893px', '600px' ],
			maxmin : true,
			content : '/task/edit?id=' + selectContent[0].id
		});
	}
}
function view() {
	var selectContent = $('#table').bootstrapTable('getSelections');
	if (typeof (selectContent) == 'undefined') {
		BootstrapDialog.show({
			title : '提示',
			message : '请选择一列数据!'
		});
		return false;
	} else if (selectContent.length != 1) {
		BootstrapDialog.show({
			title : '提示',
			message : '请只选择一列数据!'
		});
		return false;
	} else {
		layer.open({
			type : 2,
			title : "局端标准服务清册",
			offset : 15,
			shadeClose : true,
			shade : false,
			maxmin : true, // 开启最大化最小化按钮
			area : [ '893px', '600px' ],
			maxmin : true,
			content : '/task/view?id=' + selectContent[0].id
		});
	}
}

function published() {
	var selectContent = $('#table').bootstrapTable('getSelections');
	if (typeof (selectContent) == 'undefined') {
		BootstrapDialog.show({
			title : '提示',
			message : '请选择一列数据!'
		});
		return false;
	} else {
		var ids = [];
		for (var i = 0; i < selectContent.length; i++) {
			if (selectContent[i].dwfbzt == "1"
					|| selectContent[i].dwfbzt == "2"
					|| selectContent[i].dwfbzt == "6") {
				var dialog = BootstrapDialog.show({
					title : '提示',
					message : "已发布、已作废、已过时的服务不能发布",
					buttons : [ {
						label : "确定",
						cssClass : "btn-primary", // 给按钮添加类名
						action : function(dialog) { // 给当前按钮添加点击事件
							dialog.close();
						}
					} ]
				});
				return;
			}
			ids.push(selectContent[i].id);
		}
		$.post("/ywfwqd/published", {
			ids : ids
		}, function(data, status) {
			if (data == "ok") {
				var dialog = BootstrapDialog.show({
					title : '提示',
					message : "发布成功",
					buttons : [ {
						label : "确定",
						cssClass : "btn-primary", // 给按钮添加类名
						action : function(dialog) { // 给当前按钮添加点击事件
							parent.$("#table").bootstrapTable('refresh');
							dialog.close();
						}
					} ]
				});
			} else {
				var dialog = BootstrapDialog.show({
					title : '提示',
					message : data,
					buttons : [ {
						label : "确定",
						cssClass : "btn-primary", // 给按钮添加类名
						action : function(dialog) { // 给当前按钮添加点击事件
							dialog.close();
						}
					} ]
				});
			}
		});

	}
}
function cancel() {
	var selectContent = $('#table').bootstrapTable('getSelections');
	if (typeof (selectContent) == 'undefined') {
		BootstrapDialog.show({
			title : '提示',
			message : '请选择一列数据!'
		});
		return false;
	} else {
		var ids = [];
		for (var i = 0; i < selectContent.length; i++) {
			if (selectContent[i].dwfbzt == "2") {
				var dialog = BootstrapDialog.show({
					title : '提示',
					message : "已作废的服务不能再次作废",
					buttons : [ {
						label : "确定",
						cssClass : "btn-primary", // 给按钮添加类名
						action : function(dialog) { // 给当前按钮添加点击事件
							dialog.close();
						}
					} ]
				});
				return;
			}
			ids.push(selectContent[i].id);
		}
		$.post("/ywfwqd/cancel", {
			ids : ids
		}, function(data, status) {
			if (data == "ok") {
				var dialog = BootstrapDialog.show({
					title : '提示',
					message : "作废成功",
					buttons : [ {
						label : "确定",
						cssClass : "btn-primary", // 给按钮添加类名
						action : function(dialog) { // 给当前按钮添加点击事件
							parent.$("#table").bootstrapTable('refresh');
							dialog.close();
						}
					} ]
				});
			} else {
				var dialog = BootstrapDialog.show({
					title : '提示',
					message : data,
					buttons : [ {
						label : "确定",
						cssClass : "btn-primary", // 给按钮添加类名
						action : function(dialog) { // 给当前按钮添加点击事件
							dialog.close();
						}
					} ]
				});
			}
		});

	}
}
function unCancel() {
	var selectContent = $('#table').bootstrapTable('getSelections');
	if (typeof (selectContent) == 'undefined') {
		BootstrapDialog.show({
			title : '提示',
			message : '请选择一列数据!'
		});
		return false;
	} else {
		var ids = [];
		for (var i = 0; i < selectContent.length; i++) {
			if (selectContent[i].dwfbzt != "2"
					&& selectContent[i].dwfbzt != "5") {
				var dialog = BootstrapDialog.show({
					title : '提示',
					message : "只能恢复作废的服务",
					buttons : [ {
						label : "确定",
						cssClass : "btn-primary", // 给按钮添加类名
						action : function(dialog) { // 给当前按钮添加点击事件
							dialog.close();
						}
					} ]
				});
				return;
			}
			ids.push(selectContent[i].id);
		}
		$.post("/ywfwqd/unCancel", {
			ids : ids
		}, function(data, status) {
			if (data == "ok") {
				var dialog = BootstrapDialog.show({
					title : '提示',
					message : "反作废成功",
					buttons : [ {
						label : "确定",
						cssClass : "btn-primary", // 给按钮添加类名
						action : function(dialog) { // 给当前按钮添加点击事件
							parent.$("#table").bootstrapTable('refresh');
							dialog.close();
						}
					} ]
				});
			} else {
				var dialog = BootstrapDialog.show({
					title : '提示',
					message : data,
					buttons : [ {
						label : "确定",
						cssClass : "btn-primary", // 给按钮添加类名
						action : function(dialog) { // 给当前按钮添加点击事件
							dialog.close();
						}
					} ]
				});
			}
		});

	}
}

function query() {
	var bootstrapValidator = $("#form").data('bootstrapValidator');
	bootstrapValidator.resetForm();
	bootstrapValidator.validate();
	if (bootstrapValidator.isValid()) {
		$("#table").bootstrapTable('refresh');
	}
}
function exportInterfaceList() {
	var html = "<select id='versionPlanPage' class='js-example-data-array-selected' style='width: 50%'>";
	for (var i = 0; i < vps.length; i++) {
		vp = vps[i];
		html += '<option th:value="' + vp.id + '"> ' + vp.version
				+ ' </option>';
	}
	html += "</select>";
	BootstrapDialog.show({
		title : '选择版本',
		message : $(html),
		buttons : [ {
			label : '下载',
			action : function(dialog) {
				// dialog.setTitle('Title 1');
				var vp = $("#versionPlanPage").val();
				window.open("/jcqd/interfaceList?version=" + vp);
				dialog.close();
			}
		} ]
	});

	$(".js-example-basic-single").select2();
}
